#include "SList.h"

void test1()
{
	SLTNode* head = NULL;

	SListPushBack(&head, 1);
	SListPushBack(&head, 2);
	SListPushBack(&head, 3);
	SListPushBack(&head, 4);
	SListPushBack(&head, 5);

	SListPrint(head);

	//SListPopFront(&head);
	//SListPopFront(&head);
	//SListPopFront(&head);
	//SListPrint(head);
	//SListPopFront(&head);
	//SListPrint(head);

	SListPushFront(&head, 1);
	SListPushFront(&head, 2);
	SListPushFront(&head, 3);
	SListPushFront(&head, 4);
	SListPushFront(&head, 5);

	SListPrint(head);

	SListPopBack(&head);
	SListPopBack(&head);
	SListPrint(head);
	SListPopBack(&head);
	SListPopBack(&head);
	SListPopBack(&head);
	SListPrint(head);

	SListDestroy(head);
	head = NULL;
}

void test2()
{
	SLTNode* phead = NULL;
	SListInsert(&phead, NULL, 1);
	SListInsert(&phead, NULL, 2);
	SListInsert(&phead, NULL, 3);
	SListInsert(&phead, NULL, 4);

	SListInsert(&phead, phead, 1);
	SListInsert(&phead, phead, 2);
	SListInsert(&phead, phead, 3);
	SListInsert(&phead, phead, 4);

	SLTNode* pos = SListFind(phead, 1);
	SListInsertAfter(pos, 100);

	SListPrint(phead);

	SListEraseAfter(pos);

	SListPrint(phead);

	SListErase(&phead, phead);
	SListErase(&phead, phead);
	SListErase(&phead, phead);
	SListPrint(phead);

	SListDestroy(phead);
	phead = NULL;
}

void test3()
{
	int* temp1 = (int*)malloc(sizeof(int));
	int* temp2 = (int*)malloc(sizeof(int));
	int* temp3 = (int*)malloc(sizeof(int));
	int* temp4 = (int*)malloc(sizeof(int));
	int* temp5 = (int*)malloc(sizeof(int));
	printf("%p\n", temp1);
	printf("%p\n", temp2);
	printf("%p\n", temp3);
	printf("%p\n", temp4);
	printf("%p\n", temp5);
}

int main()
{
	test1();
	//test2();
	//test3();

	return 0;
}


